This invention relates to compression of image data, and more particularly to a novel architecture for processing run-length codes in parallel.
There is a need in image processing for compressing image data so that the information contained within the data may be stored in less memory space or transmitted at a higher rate. Image data is comprised of many rows of image data, and each row of image data is corresponding to the information on a document scanned by a scanning line of a scanner. Each row of image data comprises many bits each corresponding to a pixel on a scanning line. Usually, a bit with binary one level is corresponding to a black pixel representative of black or printed information on a document, and a bit with binary zero level is corresponding to a white pixel representative of white or background information on a document. A row of image data is divided into runs, i.e., strings of signals of the same value. Conventionally, a black run representative of printed information can be represented by a run-length code word comprising a run-start address indicating the position where a run starts in a row and, the number of signals in the run so that a row of original image data can be converted into vectorized data to accomplish the object of image data compression.
A run length code processor may be designed to process original image data bits which are inspected in blocks, called word. Then, the position of a changing bit whose signal value is different from that of the previous bit in the word is first calculated and the run-length is determined. From these input run-lengths, the processor generates the addresses of the code table memory and generates appropriate code words by looking up the code table memory. When decoding, the decoder generates the addresses of the code table memory from input code words, and generates run-lengths by looking up the code table memory. One example of this technique is HITACHI's DICEP (Document Image Compression and Expansion Processor), HD63085.
Unfortunately, it takes a lot of time for a computer to execute this algorithm based on encoding and decoding by software technology.